#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main (){
    char **str;
    int **a,n,i,j,k,x,y,t,sum=0;
    while(scanf("%d",&n)&&n){
        getchar();
        str=(char **)malloc(sizeof(char *)*n);//动态申请二维字符数组  str[][];   用于存放字符地图
        for(i=0;i<n;i++){
            str[i]=(char *)malloc(sizeof(char)*n);
        }
        a=(int **)malloc(sizeof(int *)*n);//动态申请二维整型数组   a[][];   用于存放数字地图
        for(i=0;i<n;i++){
            a[i]=(int *)malloc(sizeof(int)*n);
        }
        for(i=0;i<n;i++){                     //录入字符地图.
            for(j=0;j<n;j++)
                scanf("%c",&str[i][j]);
            getchar();
        }
        for(i=0;i<n;i++){    //预处理过程,根据输入的字符地图形成新的利于操作的数字地图
            for(j=0;j<n;j++){
                t=0;
                if(str[i][j]=='.'){
                    for(k=i-1;k>=0&&str[k][j]=='.';k--)//上
                        t++;
                    for(k=i+1;k<n&&str[k][j]=='.';k++)//下
                        t++;
                    for(k=j-1;k>=0&&str[i][k]=='.';k--)//左
                        t++;
                    for(k=j+1;k<n&&str[i][k]=='.';k++)//右
                        t++;
                    a[i][j]=t;
                }
                else
                    a[i][j]=8;
            }
        }
        for(i=0;i<n;i++){
            t=8;
            for(j=0;j<n;j++){
                if(a[i][j]<t){
                    t=a[i][j];
                    x=i;
                    y=j;
                }
            }
            if(t!=8){
                sum++;
                i--;
                a[x][y]=8;
                for(k=x-1;k>=0&&a[k][y]!=8;k--)    //上
                    a[k][y]=8;
                for(k=x+1;k<n&&a[k][y]!=8;k++)    //下
                    a[k][y]=8;
                for(k=y-1;k>=0&&a[x][k]!=8;k--)   //左
                    a[x][k]=8;
                for(k=y+1;k<n&&a[x][k]!=8;k++)    //右
                    a[x][k]=8;
            }
        }
        printf("%d\n",sum);
        sum=0;
    }
    return 0;
}
